xiufeigo™
Home
Linux 性能瓶颈排查

性能优化所需要具备的,是把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序、库函数、系统调用、再到内核和硬件等不同的层级贯穿起来。

一、常见场景

  1. 流量高峰期,服务器 CPU 使用率过高报警,你登录 Linux 上去 top 完之后,却不知道怎么进一步定位,到底是系统 CPU 资源太少,还是程序并发部分写的有问题?

  2. 系统并没有跑什么吃内存的程序,但是敲完 free 命令之后,却发现系统已经没有什么内存了,那到底是哪里占用了内存?为什么?

  3. 一大早就收到 Zabbix 告警,你发现某台存放监控数据的数据库主机的 iowait 较高,这个时候该怎么办?

二、性能瓶颈可能涉及模块

  1. 程序涉及

  2. 算法分析

  3. 编程语言

  4. 系统、存储、网络等各种底层基础设施

三、学习方法

  1. 带着问题学习:从实际问题场景切入而非理论学习

  2. 学会抓重点:从常见系统组件的基本原理与协作方式入手,运用基本的性能指标分析工具,反过来思考性能瓶颈产生的原因以及如何调优

四、如何找出应用或系统的瓶颈,并设法去避免或缓解

  1. 选择指标评估应用程序和系统的性能

  2. 为应用程序和系统设置性能目标

  3. 进行性能基准测试

  4. 性能分析定位瓶颈

  5. 优化系统和应用程序

  6. 性能监控和告警

总结:选指标→定目标→测基线→找瓶颈→搞优化→上监控

附:Brendan Gregg 的 Linux 性能工具图谱:

附:性能优化分析思维导图

粤ICP备2022009857号-1